<?php


namespace Modules\Common\General\Security\Authorization;


use Lauthz\Facades\Enforcer;

/**
 * @method static enforce(...$rvals): bool
 * @method static getRolesForUser(string $name): array
 * @method static getUsersForRole(string $name): array
 * @method static hasRoleForUser(string $name, string $role): bool
 * @method static addRoleForUser(string $user, string $role): bool
 * @method static deleteRoleForUser(string $user, string $role): bool
 * @method static deleteRolesForUser(string $user): bool
 * @method static deleteUser($user): bool
 * @method static deleteRole(string $role): bool
 * @method static deletePermission(string ...$permission): bool
 * @method static addPermissionForUser(string $user, string ...$permission): bool
 * @method static deletePermissionForUser(string $user, string ...$permission): bool
 * @method static deletePermissionsForUser(string $user): bool
 * @method static getPermissionsForUser(string $user): array
 * @method static hasPermissionForUser(string $user, string ...$permission): bool
 * @method static getImplicitRolesForUser(string $name, string ...$domain): array
 * @method static getImplicitPermissionsForUser(string $user, string ...$domain): array
 * @method static getImplicitUsersForPermission(string ...$permission): array
 * @method static getAllSubjects(): array
 * @method static getAllNamedSubjects(string $ptype): array
 * @method static getAllObjects(): array
 * @method static getAllNamedObjects(string $ptype): array
 * @method static getAllActions(): array
 * @method static getAllNamedActions(string $ptype): array
 * @method static getAllRoles(): array
 * @method static getAllNamedRoles(string $ptype): array
 * @method static getPolicy(): array
 * @method static getFilteredPolicy(int $fieldIndex, string ...$fieldValues): array
 * @method static getNamedPolicy(string $ptype): array
 * @method static getFilteredNamedPolicy(string $ptype, int $fieldIndex, string ...$fieldValues): array
 * @method static getGroupingPolicy(): array
 * @method static getFilteredGroupingPolicy(int $fieldIndex, string ...$fieldValues): array
 * @method static getNamedGroupingPolicy(string $ptype): array
 * @method static getFilteredNamedGroupingPolicy(string $ptype, int $fieldIndex, string ...$fieldValues): array
 * @method static hasPolicy(...$params): bool
 * @method static hasNamedPolicy(string $ptype, ...$params): bool
 * @method static addPolicy(...$params): bool
 * @method static addNamedPolicy(string $ptype, ...$params): bool
 * @method static removePolicy(...$params): bool
 * @method static removeFilteredPolicy(int $fieldIndex, string ...$fieldValues): bool
 * @method static removeNamedPolicy(string $ptype, ...$params): bool
 * @method static removeFilteredNamedPolicy(string $ptype, int $fieldIndex, string ...$fieldValues): bool
 * @method static hasGroupingPolicy(...$params): bool
 * @method static hasNamedGroupingPolicy(string $ptype, ...$params): bool
 * @method static addGroupingPolicy(...$params): bool
 * @method static addNamedGroupingPolicy(string $ptype, ...$params): bool
 * @method static removeGroupingPolicy(...$params): bool
 * @method static removeFilteredGroupingPolicy(int $fieldIndex, string ...$fieldValues): bool
 * @method static removeNamedGroupingPolicy(string $ptype, ...$params): bool
 * @method static removeFilteredNamedGroupingPolicy(string $ptype, int $fieldIndex, string ...$fieldValues): bool
 * @method static addFunction(string $name, \Closure $func): void
 * @method static
 */
class Casbin extends Enforcer
{

}
